﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Web.Mvc;

namespace ProjectBase.Core.Tools.Import
{
    /// <summary>
    /// The basic Importer interface for
    /// - taking the IIMporterData
    /// - reading the OpenXml document
    /// - resulting in the collection of IValueProviders
    /// </summary>
    /// <typeparam name="TModel"></typeparam>
    public interface IOpenXmlImporter<in TModel> : IService, IPublishingReporter
        where TModel : IImporterData
    {
        /// <summary>
        /// Builder method,
        /// - taking the IIMporterData
        /// - reading the OpenXml document
        /// - resulting in the collection of IValueProviders
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        IEnumerable<IValueProvider> Execute(TModel model);
    }
}